package Creche.Donnees;

import java.io.Serializable;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;

@SuppressWarnings("serial")
@PersistenceCapable
public class Adresse implements Serializable {
	
	@PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;
	
	private double coord_x;
	private double coord_y;
	private String adresse;
	private String code_postal;
	private String ville;
	
	
	/**
	 * Constructeur
	 */
	public Adresse(String adresse, String ville) {
		this.adresse = adresse;
		this.ville = ville;
	}
	
	
	/**
	 * Constructeur
	 * @param nom, adresse
	 * @param num, numéro de batiment 
	 * @param cp, code postal
	 * @param ville
	 * @param coord_x de la creche
	 * @param coord_y de la creche
	 */
	public Adresse(String nom, String num, String cp, String ville,
			double coord_x, double coord_y){
		adresse = num +", "+ nom;
		code_postal = cp;
		this.ville = ville;
		this.coord_x = coord_x;
		this.coord_y = coord_y;
	}
	
	
	/**
	 * Enregistre la clé primaire d'une adresse
	 * @param cle d'un objet
	 */
	public void setKey(Key cle) {
		key = KeyFactory.createKey(cle, Adresse.class.getSimpleName(), 
				adresse + ":" + ville);
	}
	
	
	/**
	 * @return la clé primaire d'une adresse dans la bd
	 */
	public Key getKey() {
		return key;
	}
	
	
	/**
	 * @return la coordonnée x de la creche
	 */
	public double getCoordX() {
		return coord_x;
	}
	
	
	/**
	 * @return la coordonnée y de la creche
	 */
	public double getCoordY() {
		return coord_y;
	}
	
	
	/**
	 * Enregistre l'adresse du client
	 * @param adresse
	 */
	public void setAdresse(String adresse) {
		this.adresse = adresse;
	}
	
	
	/**
	 * @return l'adresse du client
	 */
	public String getAdresse() {
		return adresse;
	}
	
	
	/**
	 * Enregistre le code postal du client
	 * @param code postal
	 */
	public void setCP(String cp) {
		code_postal = cp;
	}
	
	
	/**
	 * @return le code postal du client
	 */
	public String getCP() {
		return code_postal;
	}
	
	
	/**
	 * Enregistre la ville du client
	 * @param ville
	 */
	public void setVille(String ville) {
		this.ville = ville;
	}
	
	
	/**
	 * @return la ville du client
	 */
	public String getVille() {
		return ville;
	}
}
